package cn.rwklyd.ecommerce.service;

import cn.rwklyd.ecommerce.mapper.ApiMapper;
import cn.rwklyd.ecommerce.pojo.Product;
import cn.rwklyd.ecommerce.pojo.UserLog;
import cn.rwklyd.ecommerce.pojo.Users;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author 键盘书生
 * @date 2024/12/1
 */


@Service
public class ApiService {
    @Autowired
    private ApiMapper apiMapper;
    @Autowired
    private UserLogService userLogService;

    // 用户登录
    public Users login(Users users) {
        Users e = apiMapper.login(users);
        boolean success = (e != null);
        // 插入操作日志
        UserLog userLog = new UserLog();
        if (success) {
            userLog.setUserId(Integer.valueOf(e.getId())); // 操作对象 id
            userLog.setActionDescription((e.getRole().equals("customer") ? "用户：" : "管理员：")
                    + e.getUsername() + "登录系统成功");
        } else {
            userLog.setUserId(-1); // 表示未找到用户
            userLog.setActionDescription("未知用户尝试使用账号："+users.getUsername()+",登录系统失败");
        }
        userLog.setActionType("login"); // 操作类型
        userLog.setSuccess(success); // 操作是否成功
        userLogService.insert(userLog); // 插入日志记录
        return e; // 返回用户信息或 null
    }


    //  用户注册
    public int register(Users users){
        users.setRole("customer");  // 默认为普通用户
        Users e = apiMapper.queryUser(users);
        if (e != null){
            return 0;
        }
        return apiMapper.register(users);
    }

    //  获取商品列表
    public List<Product> getProductList(){
        return apiMapper.getProductList();
    }

    // 用户充值
    public Boolean rechargeQRCode(String id, Double amount){
        return apiMapper.rechargeQRCode(id, amount);
    }

    // 轮询用户余额
    public Double pollingBalance(String id){
        return apiMapper.pollingBalance(id);
    }

    // 商品搜索
    public List<Product> search(String key){
        return apiMapper.search(key);
    }

}


